﻿/**********************************************************/
/* 5-10-2010 - Jeroen van Eijk - 0911305	        	  */
/*							                              */
/* Draaischijf die de speler draait                       */
/**********************************************************/
using Roborally.CommonData.Enums;

namespace Roborally.Bord
{
    /// <summary>
    /// Draaischijf deze draait de speler
    /// </summary>
    public class Draaischijf : Vak
    {
        #region Fields en Properties
        private DraaiRichting draairichting;

        /// <summary>
        /// Geeft aan welke kant de draaischijf op draait
        /// </summary>
        public DraaiRichting Draairichting
        {
            get { return draairichting; }
        }
        #endregion

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="muur">Wordt doorgezonden naar de base klasse</param>
        /// <param name="draairichting">Geeft aan welke richting de draaischijf uit draait (van boven de schijf naar een kant toe)</param>
        public Draaischijf(DraaiRichting draairichting, bool[] muur)
            : base(muur)
        {
            this.draairichting = draairichting;
        }

        /// <summary>
        /// Method die het VakTyperetourneert.
        /// </summary>
        /// <returns>VakType van deze klasse.</returns>
        public override VakType KrijgType()
        {
            return VakType.Draaischijf;
        }

        /// <summary>
        /// Geeft de richting van het object terug indien van toepassing.
        /// </summary>
        /// <returns>Richting van het object</returns>
        public override Richting KrijgRichting()
        { return Richting.Noord; }

        /// <summary>
        /// Geeft de draairichting van het object terug indien van toepassing.
        /// </summary>
        /// <returns>Draairichting van het object</returns>
        public override DraaiRichting KrijgDraairichting()
        { return draairichting; }

        /// <summary>
        /// Geeft het bandtype van het object terug indien van toepassing.
        /// </summary>
        /// <returns>BandType van het object</returns>
        public override BandType KrijgBandType()
        { return BandType.VanBovenLinksNaarOnder; }

        /// <summary>
        /// Geeft het checkpoint nummer van het object terug indien van toepassing.
        /// </summary>
        /// <returns>Checkpoint nummer van het object</returns>
        public override int CheckpointNummer()
        { return 0; }

        /// <summary>
        /// Geeft de dimensie van het object terug indien van toepassing.
        /// </summary>
        /// <returns>Dimensie van het object</returns>
        public override Dimensie KrijgDimensie()
        { return Dimensie.Horizontaal; }

        /// <summary>
        /// Geeft of er een lasermondin het vak bevind indien van toepassing.
        /// </summary>
        /// <returns>True als er een lasermond in zit</returns>
        public override bool KrijgLaserMond()
        { return false; }

        /// <summary>
        /// Geeft de kracht van het object terug indien van toepassing.
        /// </summary>
        /// <returns>Kracht van het object</returns>
        public override int KrijgKracht()
        { return 0; }

        /// <summary>
        /// Geeft aan of het object deze beurt actief is terug indien van toepassing.
        /// </summary>
        /// <returns>True indien actief deze beurt</returns>
        public override bool Actief(int beurt)
        { return true; }

    }
}
